package kickboxing.controller;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import kickboxing.model.Informacje;
import kickboxing.model.Uzytkownik;
import kickboxing.util.HibernateUtil;

public class InformacjeManager extends HibernateUtil{
	
	public Informacje zapisz(Informacje info, Uzytkownik uzytkownik){
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		List<Informacje> listaInfo = null;
		Query q = session.createQuery("from Informacje where id_uzytkownika=" + uzytkownik.getId_uzytkownika() );
		listaInfo = q.list();
		if(listaInfo.isEmpty()){
			info.setId_uzytkownika(uzytkownik);
			session.save(info);
		}else{
			for (Informacje informacje : listaInfo) {
				Informacje inf = (Informacje) session.load(Informacje.class, informacje.getId_info());
				System.out.println("info: " + info.getData_ur() +" " + info.getKategoria_wagowa());
				inf.setData_ur(info.getData_ur());
				inf.setKategoria_wagowa(info.getData_ur());
				inf.setOsiagniecia(info.getOsiagniecia());
				inf.setPseudonim(info.getPseudonim());
				inf.setSekcja(info.getSekcja());
				session.update(inf);
			}
			
			
		}
		
		session.getTransaction().commit();
		return info;
		
	}
	
	public Informacje update(Informacje info){
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		info = (Informacje) session.load(Informacje.class, info.getId_info());
		
		info.setData_ur(info.getData_ur());
		info.setKategoria_wagowa(info.getData_ur());
		info.setOsiagniecia(info.getOsiagniecia());
		info.setPseudonim(info.getPseudonim());
		info.setSekcja(info.getSekcja());
		session.update(info);
		session.getTransaction().commit();
		return info;
		
	}
	
	public List<Informacje> wyswietlInformacje(int id_uzytkownika){
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		List<Informacje> listaInfo = null;
		Query q = session.createQuery("from Informacje where id_uzytkownika=" + id_uzytkownika );
		listaInfo = q.list();
		session.getTransaction().commit();
		return listaInfo;
	}
	
	public boolean checkIfInfoexist(int id_uzytkownika){
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		List<Informacje> listaInfo = null;
		Query q = session.createQuery("from Informacje where id_uzytkownika=" + id_uzytkownika );
		listaInfo = q.list();
		if(listaInfo.isEmpty()){
			return true;
		}
		session.getTransaction().commit();
		return false;
	}
//	public static void main(String[] args) {
//		InformacjeManager info = new InformacjeManager();
//		boolean check =  info.checkIfInfoexist(14);
//		System.out.println(check);
//	}

}


